package org.jeecg.modules.charge.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.entity.charge.ChargeInvoice;
import org.jeecg.entity.charge.ChargeInvoiceRequest;
import org.jeecg.model.charge.reqvo.DayReportReqVo;
import org.jeecg.model.charge.resvo.DayReportRespVo;
import org.jeecg.modules.charge.entity.ChargeBillsOrder;
import org.jeecg.modules.charge.entity.ChargePayNotify;
import org.jeecg.vo.charge.ChargeOrderReqVo;

import java.util.List;

/**
 * @Description: 订单表
 * @Author: jeecg-boot
 * @Date: 2019-08-15
 * @Version: V1.0
 */
public interface IChargeBillsOrderService extends IService<ChargeBillsOrder> {

    Result<ChargeBillsOrder> unLineCharge(ChargeOrderReqVo reqVo);

    void autoBills(ChargeOrderReqVo chargeInvoice);

    ChargeBillsOrder chargePayNotify(ChargePayNotify stu);

    //
    public ChargeBillsOrder getBillOrderBySn(String sn);

    /**
     * 多表联查分页
     *
     * @param page
     * @return
     */
    public List<ChargeBillsOrder> listByProject(Page<ChargeBillsOrder> page, ChargeBillsOrder order);

    Result<ChargeInvoice> unLineQRCodeCharge(ChargeOrderReqVo reqVo);

    //退款
    Result<ChargeBillsOrder> refundCharge(String orderId);

    List<ChargeInvoiceRequest>invoiceRequestListBySn(String orderNum);

    ChargeInvoiceRequest invoiceRequestByFpqqlsh(String lsh);

    List<DayReportRespVo> findGroupList(DayReportReqVo dayReportReqVo);

    String getFeeNameByOrderId(String orderId,Integer refundStatus, int type);

    Result chargeBlueInvoice(ChargeBillsOrder chargeBillsOrder);

}
